#pragma once
#include <hash_map>
#include "MapGrid.h"

class CMapBuilderView;

class CGameMap
{
public:
	enum DefaultValue
	{
		DEFAULT_MAP_WIDTH		= 16,
		DEFAULT_MAP_HEIGHT		= 16,
	};
	friend CMapBuilderView;
public:
	CGameMap();
	virtual ~CGameMap();
protected:
	void SaveMap(CArchive& ar);
	void LoadMap(CArchive& ar);
protected:
	typedef stdext::hash_map<CGridPos::ID, CMapGrid> GridStore;
	CSize m_csMapSize;
	long m_nGridSize;
	GridStore m_GridStore;
	CDataGridInfo m_DataGridInfo;
};
